Terms that need defining: thunk, command, mutation procedure, (what else?). The ?, !, and -> conventions should be explained somewhere.
Just say somewhere that the value of procedures whose names end in ! is unspecified.